summaryrefslogtreecommitdiff
path: root/app/[lng]/partners/(partners)/vendor-data/layout.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/partners/(partners)/vendor-data/layout.tsx')
-rw-r--r--app/[lng]/partners/(partners)/vendor-data/layout.tsx36
1 files changed, 23 insertions, 13 deletions
diff --git a/app/[lng]/partners/(partners)/vendor-data/layout.tsx b/app/[lng]/partners/(partners)/vendor-data/layout.tsx
index cae8d10b..9621d23f 100644
--- a/app/[lng]/partners/(partners)/vendor-data/layout.tsx
+++ b/app/[lng]/partners/(partners)/vendor-data/layout.tsx
@@ -4,33 +4,43 @@ import { cookies } from "next/headers"
import { Shell } from "@/components/shell"
import { getVendorProjectsAndContracts } from "@/lib/vendor-data/services"
import { VendorDataContainer } from "@/components/vendor-data/vendor-data-container"
-import { authOptions } from "@/app/api/auth/[...nextauth]/route";
-import { getServerSession } from "next-auth";
+import { authOptions } from "@/app/api/auth/[...nextauth]/route"
+import { getServerSession } from "next-auth"
import { InformationButton } from "@/components/information/information-button"
+import { useTranslation } from "@/i18n"
+
+interface VendorDataLayoutProps {
+ children: React.ReactNode
+ params?: { locale?: string }
+}
+
// Layout 컴포넌트는 서버 컴포넌트입니다
export default async function VendorDataLayout({
children,
-}: {
- children: React.ReactNode
-}) {
+ params,
+}: VendorDataLayoutProps) {
+ // 기본 언어는 'ko'로 설정, params.locale이 있으면 사용
+ const lng = params?.locale || 'ko'
+ const { t } = await useTranslation(lng, 'engineering')
+
const session = await getServerSession(authOptions)
const vendorId = session?.user.companyId
// const vendorId = "17"
const idAsNumber = Number(vendorId)
-
+
// 프로젝트 데이터 가져오기
- const projects = await getVendorProjectsAndContracts(idAsNumber)
+ const projects = await getVendorProjectsAndContracts(idAsNumber)
// 레이아웃 설정 쿠키 가져오기
// Next.js 15에서는 cookies()가 Promise를 반환하므로 await 사용
const cookieStore = await cookies()
-
+
// 이제 cookieStore.get() 메서드 사용 가능
const layout = cookieStore.get("react-resizable-panels:layout:mail")
const collapsed = cookieStore.get("react-resizable-panels:collapsed")
-
+
const defaultLayout = layout ? JSON.parse(layout.value) : undefined
- const defaultCollapsed = collapsed ? JSON.parse(collapsed.value) : undefined
+ const defaultCollapsed = collapsed ? JSON.parse(collapsed.value) : undefined
return (
<Shell className="gap-2">
@@ -39,7 +49,7 @@ export default async function VendorDataLayout({
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 협력업체 데이터 입력
+ {t('layout.page_title')}
</h2>
<InformationButton pagePath="partners/vendor-data" />
</div>
@@ -49,12 +59,12 @@ export default async function VendorDataLayout({
</div>
</div>
</div>
-
+
<section className="overflow-hidden rounded-[0.5rem] border bg-background shadow">
<div className="hidden flex-col md:flex">
{projects.length === 0 ? (
<div className="p-4 text-center text-sm text-muted-foreground">
- No projects found for this vendor.
+ {t('layout.no_projects')}
</div>
) : (
<VendorDataContainer